package familytree.persistencia.pojos;

import java.util.AbstractSet;
import java.util.Calendar;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import org.hibernate.collection.PersistentSet;

/**
 *
 * @author Antonio
 */
public class Nodo {

    private String idNodo;
    private String nombre;
    private String primerApellido;
    private String segundoApellido;
    private Calendar fechaNacimiento;
    private Calendar fechaDefuncion;
    private String sexo;
    private Pareja padres;
    private Set parejas;
    private Set parejasComoComponenteDos;
    private Arbol arbol;
    private Usuario usuario;
    private Imagen imagen;

    /**Constructor*/
    public Nodo() {
        this.parejas = new HashSet();
        this.parejasComoComponenteDos = new HashSet();
    }

    public Imagen getImagen() {
        return imagen;
    }

    public void setImagen(Imagen imagen) {
        this.imagen = imagen;
    }

    
    
    
    /**Metodos observadores y modificadores de la clase*/
    
    public Set getParejasComoComponenteDos() {
        return parejasComoComponenteDos;
    }

    public void setParejasComoComponenteDos(Set parejasComoComponenteDos) {
        this.parejasComoComponenteDos = parejasComoComponenteDos;
    }    
    
    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Pareja getPadres() {
        return padres;
    }

    public void setPadres(Pareja padres) {
        this.padres = padres;
    }

    public Set getParejas() {
        return parejas;
    }

    public void setParejas(Set parejas) {
        this.parejas = parejas;
    }

    public Arbol getArbol() {
        return arbol;
    }

    public void setArbol(Arbol arbol) {
        this.arbol = arbol;
    }

    public String getPrimerApellido() {
        return primerApellido;
    }

    public void setPrimerApellido(String primerApellido) {
        this.primerApellido = primerApellido;
    }

    public String getSegundoApellido() {
        return segundoApellido;
    }

    public void setSegundoApellido(String segundoApellido) {
        this.segundoApellido = segundoApellido;
    }

   
    public Calendar getFechaDefuncion() {
        return fechaDefuncion;
    }

    public void setFechaDefuncion(Calendar fechaDefuncion) {
        this.fechaDefuncion = fechaDefuncion;
    }

    public Calendar getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(Calendar fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    
    //Para los formularios
    public void setSexo(String sexo){
        if(sexo!=null){
             if (sexo.toLowerCase().equals("femenino"))
                     this.sexo = sexo;
             else
                    this.sexo = sexo;
        }
    }
    
    
  
    
    public String getSexo(){
    
        return this.sexo;
    }
    
    public String getIdNodo() {
        return idNodo;
    }

    public void setIdNodo(String idNodo) {
        this.idNodo = idNodo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**Metodo addPareja: añade una pareja nueva al atributo Set parejas.
     *@param Pareja : la nueva pareja que se añade.
     */
    public void addPareja(Pareja pareja) {
        if(this.parejas == null)
            this.parejas = new LinkedHashSet<Pareja>();
        parejas.add(pareja);
    }
}
